In signal processing applications such as speech, data is compressed before it is stored and decompressed when it is retrieved. Such compression/decompression reduces the amount of memory required to store the data. One of the most common compression/decompression techniques is ADPCM.
When ADPCM is used, the analysis (compression) process is as follows:
1. Consider the discrete data samples, X.sub.0, X.sub.1, X.sub.2, . . . X.sub.N-1. It should be noted that this data has maximum points. PA0 2. Select an initial estimated value X.sub.0 and an initial quantization step q.sub.ini ; PA0 3. From the original data value X.sub.0 and the initial estimated data value X.sub.0, a quantization step size q.sub.0 and compressed data value D.sub.0 can be obtained as follows: EQU q.sub.0 =f.sub.1 (X.sub.0, X.sub.0, q.sub.ini) EQU D.sub.0 =f.sub.2 (X.sub.0, X.sub.0, q.sub.ini) PA0 4. From the obtained values q.sub.0, D.sub.0, the next estimated value, EQU X.sub.1 =X.sub.0 +T(q.sub.0)+D.sub.0 PA0 5. The values q.sub.n, D.sub.n, X.sub.n can be calculated as follows: EQU q.sub.n =f.sub.1 (X.sub.n-1, X.sub.n-1, q.sub.n-1) EQU D.sub.n =f.sub.2 (X.sub.n-1, X.sub.n-1, q.sub.n-1) EQU X.sub.n =X.sub.n-1 +T(q.sub.n-1)*D.sub.n-1 PA0 6. In this way, the original data X.sub.0, X.sub.1, X.sub.2, . . . , X.sub.N-1 are transformed into estimated data X.sub.0, X.sub.1, X.sub.2, . . . , X.sub.N-1 and the encoded (compressed) data D.sub.0, D.sub.1, D.sub.2, . . . , D.sub.N-1 are also obtained. PA0 1. Select the same initial quantization step size value q.sub.ini and estimated value X.sub.0. PA0 2. From the compressed data D.sub.0, D.sub.1, . . . , D.sub.N, the next estimated value X.sub.1, X.sub.2, . . . and quantization step q.sub.0, q.sub.1, . . . can be calculated as follows: EQU X.sub.n+1 =X.sub.n +T(q.sub.n)*D.sub.n EQU q.sub.n+1 =f.sub.3 (q.sub.n, D.sub.n)
is obtained, where T is a function of q (quantization step). The function T is usually an exponential function and, conventionally, a look-up table stored in a memory is used to implement this function. The function T(q) is illustrated in FIG. 1.
Generally, when ADPCM is used, the above-described analysis process is carried out in software using a computer to generate the compressed data D.sub.0, D.sub.1, D.sub.2, . . . , D.sub.N-1.
When ADPCM is used, the synthesis (decompression) process is as follows:
Using this formulation, the sequence of estimated values X.sub.0, X.sub.1, X.sub.2, . . . , X.sub.N is regenerated from the compressed data.
FIG. 2 schematically illustrates a circuit 10 for performing the ADPCM synthesis process described above. In the circuit 10 of FIG. 2, the input is the compressed data D.sub.n. The compressed data D.sub.n is received at the input 11. The circuit 12 receives the inputs D.sub.n, q.sub.n at the inputs 13, 14 respectively. The output of the circuit 12 is q.sub.n+1 =f.sub.3 (q.sub.n, D.sub.n) which appears at the output 15. The output q.sub.n+1 is then processed by the unit delay 16 so that q.sub.n is present at the input 13. The unit delay 16 also transmits the value q.sub.n to a memory circuit 20 which stores a look-up table for the function T(q.sub.n). FIG. 3 is an exemplary look-up table for the function T(q.sub.n) and thus illustrates the values stored in the memory 20. The circuit 22 multiplies T(q.sub.n) and D.sub.n and outputs the product T(q.sub.n)*D.sub.n. The product T(q.sub.n)*D.sub.n is one input to the summer 24. The other input is X.sub.n. The value X.sub.n is generated by the unit delay 26. The output of the summer 24 is X.sub.n+1 which is equal to X.sub.n +T(q.sub.n)*D.sub.n. The value X.sub.n+1 is fed back to the unit delay 26 whose output is X.sub.n.
The values contained in the look-up table stored in the memory 20 of FIG. 2 and explicitly set forth in FIG. 3 are illustrative only and are obtained according to the formula: EQU q.sub.n =integer part of q.sub.n-1 *1.1
where
q.sub.n =16.
The memory 20 of FIG. 2 is shown in greater detail in FIG. 4. As shown in FIG. 4, the memory 20 has six input pins for the 63 steps q.sub.n =0 to q.sub.n =62 and twelve output pins for the output values T(q.sub.n). Thus, the memory 20 requires 63.times.12=756 bits. This memory cannot be easily divided into smaller blocks and, thus, results in a significant increase in the chip size for the ADPCM synthesizer.
Accordingly, it is an object of the present invention to provide an ADPCM synthesizer which does not utilize a memory storing a look-up table to implement the function T(q.sub.n).